/*
	豆瓣小组讨论Widget v0.1.1
		by killkeeper
*/

javascript:void(
function()
{	
	var pt = /\/group|subject\/topic|discussion\/[0-9]+/;
	var pplre = /\/people\/(\w+)/;
	if (pt.test(window.location.href))
	{
		// 将函数插入Douban对象中, 保证全局可调用性.
		Douban.group_widget_help = function()
		{
			show_dialog("<h2 class='usf'>豆瓣小组讨论Widget...</h2><div class='indent'>用于帮您完成很多有趣又无聊的功能而设计. <p><strong>发言过滤:</strong><br />点击用户的头像或者昵称的链接, 即可更改过滤名单, 继而可以根据您选择的过滤名单进行发言过滤.</p><p><strong>分页提前:</strong><br />将页尾的分页导引提到页面的前端, 方便您快速的页面跳转.</p><p><input type='button' onclick='close_dialog()' value='我知道了' />");	
		};
		
		Douban.group_widget_unbind = function()
		{
			$("a").unbind("click");
			Douban.group_widget_recover();
			$("#talkhack").html("再见!").hide('slow', function(){ $(this).remove(); });
		};
		
		Douban.group_widget_recover = function()
		{
			// 恢复被过滤器隐藏的楼层...
			$("table.wr:hidden").show();
			$("br:hidden").show();
			$("br.pl2").remove();
		};
		
		Douban.group_widget_filter_show = function()
		{
			Douban.group_widget_recover();
			$.each($("table.wr").slice(1), function(i, t)
						{
							var link = $("a", t).eq(0).attr("href");
							if (Douban.group_widget_filters[link] == undefined)
							{
								$(this).hide();
							}
						});
			
			$("table.wr ~ br").hide();
			$("table.wr:visible").after("<br class='pl2' />");
		};
		
		Douban.group_widget_filter_hide = function()
		{
			Douban.group_widget_recover();
			$.each($("table.wr").slice(1), function(i, t)
						{
							var link = $("a", t).eq(0).attr("href");
							if (Douban.group_widget_filters[link])
							{
								$(this).hide();
							}
						});
			
			$("table.wr ~ br").hide();
			$("table.wr:visible").after("<br class='pl2' />");
		};
		
		Douban.group_widget_remove_uid = function(uid)
		{
			Douban.group_widget_filters[uid] = undefined;
			Douban.group_widget_filter_count--;
			if (Douban.group_widget_filter_count == 0)
			{
				$("#talkfilter").html("点击用户头像或昵称选择您想看/不想看的用户...");
			}
		}
		
		Douban.group_widget_remove_all = function(uid)
		{
			Douban.group_widget_filters = new Object();
			Douban.group_widget_filter_count = 0;
			$("#talkfilter").html("点击用户头像或昵称选择您想看/不想看的用户...");
		}
		
		Douban.group_widget_filters = new Object();
		Douban.group_widget_filter_count = 0;
		
		if (!$("#talkhack").size())
		{
			//	初始化浮动层
			var mainWidth =  $("#main").attr("clientWidth");
			var posLeft = (document.body.clientWidth - mainWidth) / 2 + mainWidth - 270;
			$("<div id='talkhack' style='position:fixed; left:" + posLeft + "px; width:250px; top:125px; padding:10px; background:#f1f1f1; border:#ccc 2px solid; opacity: 0.8;-moz-opacity: 0.8;filter:alpha(opacity=80);'><h2 class='usf'>豆瓣小组讨论Widget运行中...</h2></div>").prependTo("body");
			
			// 处理分页层
			if ($("div.paginator").size())
			{
				var firstTb = $("table.wr").eq(0);
				firstTb.before($("div.paginator").clone()).before("<br />");		
				$("#talkhack").append("<p>/ 分页: " + $("div.paginator").clone().removeClass("paginator").html() + "</p>");
			}
			
			$("#talkhack").append("<p>/ <span class='pl2'>发言过滤:</span> <span id='talkfilter'>点击用户头像或昵称选择您想看/不想看的用户...</span></p>");
			$("#talkhack").append("<p>/ <a href='javascript:void(0);' onclick='Douban.group_widget_help()'>帮助</a> <a href='javascript:void(0);' onclick='Douban.group_widget_recover()'>恢复过滤</a> <a href='javascript:void(0);' onclick='Douban.group_widget_unbind()'>关闭</a></p>");
			
			$("a").click(function()
				{
					var ppl = $(this).attr("href");
					var nick = $(this).text();
					if (!nick)	nick = $("img", this).attr("alt");
					if (pplre.test(ppl))
					{
						// 这是user的链接...
						if (Douban.group_widget_filters[ppl] == undefined || Douban.group_widget_filters[ppl] == false)
						{
							Douban.group_widget_filters[ppl] = nick;
							Douban.group_widget_filter_count++;
						}
						else
						{
							Douban.group_widget_filters[ppl] = undefined;
							Douban.group_widget_filter_count--;
						}
						
						if (Douban.group_widget_filter_count == 0)
						{
							$("#talkfilter").html("点击用户头像或昵称选择您想看/不想看的用户...");
						}
						else
						{
							var n = '', ppl_list = new Array(), filters = Douban.group_widget_filters;
							for(fil in filters)
							{
								n = filters[fil];
								if (n)
								{
									ppl_list.push("<a href='javascrip:void(0);' onclick='Douban.group_widget_remove_uid(\"" + fil + "\")'>" + n + "</a>");
								}
							}
							$("#talkfilter").html(ppl_list.join(' &middot; ') + "<br /><a href='javascript:void(0);' onclick='Douban.group_widget_remove_all()'>清空</a> <a href='javascript:void(0);' onclick='Douban.group_widget_filter_show()'>只看</a> <a href='javascript:void(0);' onclick='Douban.group_widget_filter_hide()'>不看</a>");
						}
						
						return false;
					}
				});
		}
	}
	else
	{
		alert("您不在小组讨论");
	}
}
)()